import wx
from Project1.service import PersonService as personService
# 自定义窗口类
class MainFrame(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(800, 600))        # 创建一个面板



        panel = wx.Panel(self)
        # 创建一个纵向的盒子布局管理器
        hbox = wx.BoxSizer(wx.VERTICAL)
        # 给面板设置布局管理器
        panel.SetSizer(hbox)


        # 创建一个横向的盒子布局管理器
        vbox1 = wx.BoxSizer(wx.HORIZONTAL)
        # 给vbox1 添加4个按钮
        addBtn = wx.Button(panel, label="添加")
        # 添加按钮事件
        addBtn.Bind(wx.EVT_BUTTON, self.showAddForm)
        vbox1.Add(addBtn, flag=wx.ALL, border=2)
        editBtn = wx.Button(panel, label="修改")
        vbox1.Add(editBtn, flag=wx.ALL, border=2)
        delBtn = wx.Button(panel, label="删除")
        vbox1.Add(delBtn, flag=wx.ALL, border=2)
        clearBtn = wx.Button(panel, label="清空")
        vbox1.Add(clearBtn, flag=wx.ALL, border=2)

        # 将vbox1添加到hbox中
        hbox.Add(vbox1, flag=wx.ALL, border=2)


        # 创建一个列表表格控件
        list_ctrl = wx.ListCtrl(panel, style=wx.LC_REPORT)
        # 添加列
        list_ctrl.InsertColumn(0, "姓名")
        list_ctrl.InsertColumn(1, "年龄")
        list_ctrl.InsertColumn(2, "性别")

        persons = personService.findPersonByPage(1,10)
        for person in persons:
            list_ctrl.SetItem(0,0, person.name)
            list_ctrl.SetItem(0, 1, str(person.age))
            list_ctrl.SetItem(0, 2, person.sex)

        # 添加数据
        hbox.Add(list_ctrl, flag=wx.ALL, border=10)


    def showAddForm(self,event):
        # 创建一个窗口
        frame = AddForm(None, title="添加人员")





        # 显示窗口
        frame.Show(True)


class AddForm(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(400, 300))
        # 创建一个面板
        panel = wx.Panel(self)
        # 创建一个纵向的盒子布局管理器
        hbox = wx.BoxSizer(wx.VERTICAL)
        # 给面板设置布局管理器
        panel.SetSizer(hbox)


if __name__ == "__main__":
    # 创建一个应用程序
    app = wx.App()
    # 创建一个窗口
    frame = MainFrame(None, title="人员管理")
    # 显示窗口
    frame.Show()
    # 运行应用程序
    app.MainLoop()
